! function(e) {
    var d = function(b, l, k) {
            var j, i, h = document.createElement("img");
            if (h.onerror = l, h.onload = function() {
                    !i || k && k.noRevoke || d.revokeObjectURL(i), l && l(d.scale(h, k))
                }, d.isInstanceOf("Blob", b) || d.isInstanceOf("File", b)) {
                j = i = d.createObjectURL(b), h._type = b.type
            } else {
                if ("string" != typeof b) {
                    return !1
                }
                j = b, k && k.crossOrigin && (h.crossOrigin = k.crossOrigin)
            }
            return j ? (h.src = j, h) : d.readFile(b, function(g) {
                var c = g.target;
                c && c.result ? h.src = c.result : l && l(g)
            })
        },
        f = window.createObjectURL && window || window.URL && URL.revokeObjectURL && URL || window.webkitURL && webkitURL;
    d.isInstanceOf = function(g, c) {
        return Object.prototype.toString.call(c) === "[object " + g + "]"
    }, d.transformCoordinates = function() {}, d.getTransformedOptions = function(b) {
        return b
    }, d.renderImageToCanvas = function(t, s, r, q, p, o, n, m, l, k) {
        return t.getContext("2d").drawImage(s, r, q, p, o, n, m, l, k), t
    }, d.hasCanvasOption = function(b) {
        return b.canvas || b.crop
    }, d.scale = function(L, K) {
        K = K || {};
        var J, I, H, G, F, E, D, C, B, A = document.createElement("canvas"),
            z = L.getContext || d.hasCanvasOption(K) && A.getContext,
            y = L.naturalWidth || L.width,
            x = L.naturalHeight || L.height,
            w = y,
            v = x,
            u = function() {
                var c = Math.max((H || w) / w, (G || v) / v);
                c > 1 && (w = Math.ceil(w * c), v = Math.ceil(v * c))
            },
            b = function() {
                var c = Math.min((J || w) / w, (I || v) / v);
                1 > c && (w = Math.ceil(w * c), v = Math.ceil(v * c))
            };
        return z && (K = d.getTransformedOptions(K), D = K.left || 0, C = K.top || 0, K.sourceWidth ? (F = K.sourceWidth, void 0 !== K.right && void 0 === K.left && (D = y - F - K.right)) : F = y - D - (K.right || 0), K.sourceHeight ? (E = K.sourceHeight, void 0 !== K.bottom && void 0 === K.top && (C = x - E - K.bottom)) : E = x - C - (K.bottom || 0), w = F, v = E), J = K.maxWidth, I = K.maxHeight, H = K.minWidth, G = K.minHeight, z && J && I && K.crop ? (w = J, v = I, B = F / E - J / I, 0 > B ? (E = I * F / J, void 0 === K.top && void 0 === K.bottom && (C = (x - E) / 2)) : B > 0 && (F = J * E / I, void 0 === K.left && void 0 === K.right && (D = (y - F) / 2))) : ((K.contain || K.cover) && (H = J = J || H, G = I = I || G), K.cover ? (b(), u()) : (u(), b())), z ? (A.width = w, A.height = v, d.transformCoordinates(A, K), d.renderImageToCanvas(A, L, D, C, F, E, 0, 0, w, v)) : (L.width = w, L.height = v, L)
    }, d.createObjectURL = function(b) {
        return f ? f.createObjectURL(b) : !1
    }, d.revokeObjectURL = function(b) {
        return f ? f.revokeObjectURL(b) : !1
    }, d.readFile = function(h, g, j) {
        if (window.FileReader) {
            var i = new FileReader;
            if (i.onload = i.onerror = g, j = j || "readAsDataURL", i[j]) {
                return i[j](h), i
            }
        }
        return !1
    }, "function" == typeof define && define.amd ? define(function() {
        return d
    }) : e.loadImage = d
}(this),
function(b) {
    "function" == typeof define && define.amd ? define(["load-image"], b) : b(window.loadImage)
}(function(d) {
    if (window.navigator && window.navigator.platform && /iP(hone|od|ad)/.test(window.navigator.platform)) {
        var c = d.renderImageToCanvas;
        d.detectSubsampling = function(f) {
            var e, g;
            return f.width * f.height > 1048576 ? (e = document.createElement("canvas"), e.width = e.height = 1, g = e.getContext("2d"), g.drawImage(f, -f.width + 1, 0), 0 === g.getImageData(0, 0, 1, 1).data[3]) : !1
        }, d.detectVerticalSquash = function(t, s) {
            var r, q, p, o, n, m = t.naturalHeight || t.height,
                l = document.createElement("canvas"),
                k = l.getContext("2d");
            for (s && (m /= 2), l.width = 1, l.height = m, k.drawImage(t, 0, 0), r = k.getImageData(0, 0, 1, m).data, q = 0, p = m, o = m; o > q;) {
                n = r[4 * (o - 1) + 3], 0 === n ? p = o : q = o, o = p + q >> 1
            }
            return o / m || 1
        }, d.renderImageToCanvas = function(J, I, H, G, F, E, D, C, B, A) {
            if ("image/jpeg" === I._type) {
                var z, y, x, w, v = J.getContext("2d"),
                    u = document.createElement("canvas"),
                    b = 1024,
                    a = u.getContext("2d");
                if (u.width = b, u.height = b, v.save(), z = d.detectSubsampling(I), z && (H /= 2, G /= 2, F /= 2, E /= 2), y = d.detectVerticalSquash(I, z), z || 1 !== y) {
                    for (G *= y, B = Math.ceil(b * B / F), A = Math.ceil(b * A / E / y), C = 0, w = 0; E > w;) {
                        for (D = 0, x = 0; F > x;) {
                            a.clearRect(0, 0, b, b), a.drawImage(I, H, G, F, E, -x, -w, F, E), v.drawImage(u, 0, 0, b, b, D, C, B, A), x += b, D += B
                        }
                        w += b, C += A
                    }
                    return v.restore(), J
                }
            }
            return c(J, I, H, G, F, E, D, C, B, A)
        }
    }
}),
function(b) {
    "function" == typeof define && define.amd ? define(["load-image"], b) : b(window.loadImage)
}(function(d) {
    var c = d.hasCanvasOption;
    d.hasCanvasOption = function(b) {
        return c(b) || b.orientation
    }, d.transformCoordinates = function(h, g) {
        var l = h.getContext("2d"),
            k = h.width,
            j = h.height,
            i = g.orientation;
        if (i) {
            switch (i > 4 && (h.width = j, h.height = k), i) {
                case 2:
                    l.translate(k, 0), l.scale(-1, 1);
                    break;
                case 3:
                    l.translate(k, j), l.rotate(Math.PI);
                    break;
                case 4:
                    l.translate(0, j), l.scale(1, -1);
                    break;
                case 5:
                    l.rotate(0.5 * Math.PI), l.scale(1, -1);
                    break;
                case 6:
                    l.rotate(0.5 * Math.PI), l.translate(0, -j);
                    break;
                case 7:
                    l.rotate(0.5 * Math.PI), l.translate(k, -j), l.scale(-1, 1);
                    break;
                case 8:
                    l.rotate(-0.5 * Math.PI), l.translate(-k, 0)
            }
        }
    }, d.getTransformedOptions = function(f) {
        if (!f.orientation || 1 === f.orientation) {
            return f
        }
        var e, g = {};
        for (e in f) {
            f.hasOwnProperty(e) && (g[e] = f[e])
        }
        switch (f.orientation) {
            case 2:
                g.left = f.right, g.right = f.left;
                break;
            case 3:
                g.left = f.right, g.top = f.bottom, g.right = f.left, g.bottom = f.top;
                break;
            case 4:
                g.top = f.bottom, g.bottom = f.top;
                break;
            case 5:
                g.left = f.top, g.top = f.left, g.right = f.bottom, g.bottom = f.right;
                break;
            case 6:
                g.left = f.top, g.top = f.right, g.right = f.bottom, g.bottom = f.left;
                break;
            case 7:
                g.left = f.bottom, g.top = f.right, g.right = f.top, g.bottom = f.left;
                break;
            case 8:
                g.left = f.bottom, g.top = f.left, g.right = f.top, g.bottom = f.right
        }
        return f.orientation > 4 && (g.maxWidth = f.maxHeight, g.maxHeight = f.maxWidth, g.minWidth = f.minHeight, g.minHeight = f.minWidth, g.sourceWidth = f.sourceHeight, g.sourceHeight = f.sourceWidth), g
    }
}),
function(b) {
    "function" == typeof define && define.amd ? define(["load-image"], b) : b(window.loadImage)
}(function(d) {
    var c = window.Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
    d.blobSlice = c && function() {
        var b = this.slice || this.webkitSlice || this.mozSlice;
        return b.apply(this, arguments)
    }, d.metaDataParsers = {
        jpeg: {
            65505: []
        }
    }, d.parseMetaData = function(a, n, m) {
        m = m || {};
        var l = this,
            k = m.maxMetaDataSize || 262144,
            j = {},
            i = !(window.DataView && a && a.size >= 12 && "image/jpeg" === a.type && d.blobSlice);
        (i || !d.readFile(d.blobSlice.call(a, 0, k), function(w) {
            if (w.target.error) {
                return console.log(w.target.error), n(j), void 0
            }
            var v, u, t, s, r = w.target.result,
                q = new DataView(r),
                p = 2,
                g = q.byteLength - 4,
                e = p;
            if (65496 === q.getUint16(0)) {
                for (; g > p && (v = q.getUint16(p), v >= 65504 && 65519 >= v || 65534 === v);) {
                    if (u = q.getUint16(p + 2) + 2, p + u > q.byteLength) {
                        console.log("Invalid meta data: Invalid segment size.");
                        break
                    }
                    if (t = d.metaDataParsers.jpeg[v]) {
                        for (s = 0; s < t.length; s += 1) {
                            t[s].call(l, q, p, u, j, m)
                        }
                    }
                    p += u, e = p
                }!m.disableImageHead && e > 6 && (j.imageHead = r.slice ? r.slice(0, e) : new Uint8Array(r).subarray(0, e))
            } else {
                console.log("Invalid JPEG file: Missing JPEG marker.")
            }
            n(j)
        }, "readAsArrayBuffer")) && n(j)
    }
}),
function(b) {
    "function" == typeof define && define.amd ? define(["load-image", "load-image-meta"], b) : b(window.loadImage)
}(function(b) {
    b.ExifMap = function() {
        return this
    }, b.ExifMap.prototype.map = {
        Orientation: 274
    }, b.ExifMap.prototype.get = function(c) {
        return this[c] || this[this.map[c]]
    }, b.getExifThumbnail = function(h, g, l) {
        var k, j, i;
        if (!l || g + l > h.byteLength) {
            return console.log("Invalid Exif data: Invalid thumbnail data."), void 0
        }
        for (k = [], j = 0; l > j; j += 1) {
            i = h.getUint8(g + j), k.push((16 > i ? "0" : "") + i.toString(16))
        }
        return "data:image/jpeg,%" + k.join("%")
    }, b.exifTagTypes = {
        1: {
            getValue: function(d, c) {
                return d.getUint8(c)
            },
            size: 1
        },
        2: {
            getValue: function(d, c) {
                return String.fromCharCode(d.getUint8(c))
            },
            size: 1,
            ascii: !0
        },
        3: {
            getValue: function(e, d, f) {
                return e.getUint16(d, f)
            },
            size: 2
        },
        4: {
            getValue: function(e, d, f) {
                return e.getUint32(d, f)
            },
            size: 4
        },
        5: {
            getValue: function(e, d, f) {
                return e.getUint32(d, f) / e.getUint32(d + 4, f)
            },
            size: 8
        },
        9: {
            getValue: function(e, d, f) {
                return e.getInt32(d, f)
            },
            size: 4
        },
        10: {
            getValue: function(e, d, f) {
                return e.getInt32(d, f) / e.getInt32(d + 4, f)
            },
            size: 8
        }
    }, b.exifTagTypes[7] = b.exifTagTypes[1], b.getExifValue = function(z, y, x, w, v, u) {
        var t, s, r, q, p, o, a = b.exifTagTypes[w];
        if (!a) {
            return console.log("Invalid Exif data: Invalid tag type."), void 0
        }
        if (t = a.size * v, s = t > 4 ? y + z.getUint32(x + 8, u) : x + 8, s + t > z.byteLength) {
            return console.log("Invalid Exif data: Invalid data offset."), void 0
        }
        if (1 === v) {
            return a.getValue(z, s, u)
        }
        for (r = [], q = 0; v > q; q += 1) {
            r[q] = a.getValue(z, s + q * a.size, u)
        }
        if (a.ascii) {
            for (p = "", q = 0; q < r.length && (o = r[q], "\x00" !== o); q += 1) {
                p += o
            }
            return p
        }
        return r
    }, b.parseExifTag = function(a, l, k, j, i) {
        var h = a.getUint16(k, j);
        i.exif[h] = b.getExifValue(a, l, k, a.getUint16(k + 2, j), a.getUint32(k + 4, j), j)
    }, b.parseExifTags = function(j, i, p, o, n) {
        var m, l, k;
        if (p + 6 > j.byteLength) {
            return console.log("Invalid Exif data: Invalid directory offset."), void 0
        }
        if (m = j.getUint16(p, o), l = p + 2 + 12 * m, l + 4 > j.byteLength) {
            return console.log("Invalid Exif data: Invalid directory size."), void 0
        }
        for (k = 0; m > k; k += 1) {
            this.parseExifTag(j, i, p + 2 + 12 * k, o, n)
        }
        return j.getUint32(l, o)
    }, b.parseExifData = function(r, q, p, o, n) {
        if (!n.disableExif) {
            var m, l, k, a = q + 10;
            if (1165519206 === r.getUint32(q + 4)) {
                if (a + 8 > r.byteLength) {
                    return console.log("Invalid Exif data: Invalid segment size."), void 0
                }
                if (0 !== r.getUint16(q + 8)) {
                    return console.log("Invalid Exif data: Missing byte alignment offset."), void 0
                }
                switch (r.getUint16(a)) {
                    case 18761:
                        m = !0;
                        break;
                    case 19789:
                        m = !1;
                        break;
                    default:
                        return console.log("Invalid Exif data: Invalid byte alignment marker."), void 0
                }
                if (42 !== r.getUint16(a + 2, m)) {
                    return console.log("Invalid Exif data: Missing TIFF marker."), void 0
                }
                l = r.getUint32(a + 4, m), o.exif = new b.ExifMap, l = b.parseExifTags(r, a, a + l, m, o), l && !n.disableExifThumbnail && (k = {
                    exif: {}
                }, l = b.parseExifTags(r, a, a + l, m, k), k.exif[513] && (o.exif.Thumbnail = b.getExifThumbnail(r, a + k.exif[513], k.exif[514]))), o.exif[34665] && !n.disableExifSub && b.parseExifTags(r, a, a + o.exif[34665], m, o), o.exif[34853] && !n.disableExifGps && b.parseExifTags(r, a, a + o.exif[34853], m, o)
            }
        }
    }, b.metaDataParsers.jpeg[65505].push(b.parseExifData)
}),
function(b) {
    "function" == typeof define && define.amd ? define(["load-image", "load-image-exif"], b) : b(window.loadImage)
}(function(b) {
    b.ExifMap.prototype.tags = {
            256: "ImageWidth",
            257: "ImageHeight",
            34665: "ExifIFDPointer",
            34853: "GPSInfoIFDPointer",
            40965: "InteroperabilityIFDPointer",
            258: "BitsPerSample",
            259: "Compression",
            262: "PhotometricInterpretation",
            274: "Orientation",
            277: "SamplesPerPixel",
            284: "PlanarConfiguration",
            530: "YCbCrSubSampling",
            531: "YCbCrPositioning",
            282: "XResolution",
            283: "YResolution",
            296: "ResolutionUnit",
            273: "StripOffsets",
            278: "RowsPerStrip",
            279: "StripByteCounts",
            513: "JPEGInterchangeFormat",
            514: "JPEGInterchangeFormatLength",
            301: "TransferFunction",
            318: "WhitePoint",
            319: "PrimaryChromaticities",
            529: "YCbCrCoefficients",
            532: "ReferenceBlackWhite",
            306: "DateTime",
            270: "ImageDescription",
            271: "Make",
            272: "Model",
            305: "Software",
            315: "Artist",
            33432: "Copyright",
            36864: "ExifVersion",
            40960: "FlashpixVersion",
            40961: "ColorSpace",
            40962: "PixelXDimension",
            40963: "PixelYDimension",
            42240: "Gamma",
            37121: "ComponentsConfiguration",
            37122: "CompressedBitsPerPixel",
            37500: "MakerNote",
            37510: "UserComment",
            40964: "RelatedSoundFile",
            36867: "DateTimeOriginal",
            36868: "DateTimeDigitized",
            37520: "SubSecTime",
            37521: "SubSecTimeOriginal",
            37522: "SubSecTimeDigitized",
            33434: "ExposureTime",
            33437: "FNumber",
            34850: "ExposureProgram",
            34852: "SpectralSensitivity",
            34855: "PhotographicSensitivity",
            34856: "OECF",
            34864: "SensitivityType",
            34865: "StandardOutputSensitivity",
            34866: "RecommendedExposureIndex",
            34867: "ISOSpeed",
            34868: "ISOSpeedLatitudeyyy",
            34869: "ISOSpeedLatitudezzz",
            37377: "ShutterSpeedValue",
            37378: "ApertureValue",
            37379: "BrightnessValue",
            37380: "ExposureBias",
            37381: "MaxApertureValue",
            37382: "SubjectDistance",
            37383: "MeteringMode",
            37384: "LightSource",
            37385: "Flash",
            37396: "SubjectArea",
            37386: "FocalLength",
            41483: "FlashEnergy",
            41484: "SpatialFrequencyResponse",
            41486: "FocalPlaneXResolution",
            41487: "FocalPlaneYResolution",
            41488: "FocalPlaneResolutionUnit",
            41492: "SubjectLocation",
            41493: "ExposureIndex",
            41495: "SensingMethod",
            41728: "FileSource",
            41729: "SceneType",
            41730: "CFAPattern",
            41985: "CustomRendered",
            41986: "ExposureMode",
            41987: "WhiteBalance",
            41988: "DigitalZoomRatio",
            41989: "FocalLengthIn35mmFilm",
            41990: "SceneCaptureType",
            41991: "GainControl",
            41992: "Contrast",
            41993: "Saturation",
            41994: "Sharpness",
            41995: "DeviceSettingDescription",
            41996: "SubjectDistanceRange",
            42016: "ImageUniqueID",
            42032: "CameraOwnerName",
            42033: "BodySerialNumber",
            42034: "LensSpecification",
            42035: "LensMake",
            42036: "LensModel",
            42037: "LensSerialNumber",
            0: "GPSVersionID",
            1: "GPSLatitudeRef",
            2: "GPSLatitude",
            3: "GPSLongitudeRef",
            4: "GPSLongitude",
            5: "GPSAltitudeRef",
            6: "GPSAltitude",
            7: "GPSTimeStamp",
            8: "GPSSatellites",
            9: "GPSStatus",
            10: "GPSMeasureMode",
            11: "GPSDOP",
            12: "GPSSpeedRef",
            13: "GPSSpeed",
            14: "GPSTrackRef",
            15: "GPSTrack",
            16: "GPSImgDirectionRef",
            17: "GPSImgDirection",
            18: "GPSMapDatum",
            19: "GPSDestLatitudeRef",
            20: "GPSDestLatitude",
            21: "GPSDestLongitudeRef",
            22: "GPSDestLongitude",
            23: "GPSDestBearingRef",
            24: "GPSDestBearing",
            25: "GPSDestDistanceRef",
            26: "GPSDestDistance",
            27: "GPSProcessingMethod",
            28: "GPSAreaInformation",
            29: "GPSDateStamp",
            30: "GPSDifferential",
            31: "GPSHPositioningError"
        }, b.ExifMap.prototype.stringValues = {
            ExposureProgram: {
                0: "Undefined",
                1: "Manual",
                2: "Normal program",
                3: "Aperture priority",
                4: "Shutter priority",
                5: "Creative program",
                6: "Action program",
                7: "Portrait mode",
                8: "Landscape mode"
            },
            MeteringMode: {
                0: "Unknown",
                1: "Average",
                2: "CenterWeightedAverage",
                3: "Spot",
                4: "MultiSpot",
                5: "Pattern",
                6: "Partial",
                255: "Other"
            },
            LightSource: {
                0: "Unknown",
                1: "Daylight",
                2: "Fluorescent",
                3: "Tungsten (incandescent light)",
                4: "Flash",
                9: "Fine weather",
                10: "Cloudy weather",
                11: "Shade",
                12: "Daylight fluorescent (D 5700 - 7100K)",
                13: "Day white fluorescent (N 4600 - 5400K)",
                14: "Cool white fluorescent (W 3900 - 4500K)",
                15: "White fluorescent (WW 3200 - 3700K)",
                17: "Standard light A",
                18: "Standard light B",
                19: "Standard light C",
                20: "D55",
                21: "D65",
                22: "D75",
                23: "D50",
                24: "ISO studio tungsten",
                255: "Other"
            },
            Flash: {
                0: "Flash did not fire",
                1: "Flash fired",
                5: "Strobe return light not detected",
                7: "Strobe return light detected",
                9: "Flash fired, compulsory flash mode",
                13: "Flash fired, compulsory flash mode, return light not detected",
                15: "Flash fired, compulsory flash mode, return light detected",
                16: "Flash did not fire, compulsory flash mode",
                24: "Flash did not fire, auto mode",
                25: "Flash fired, auto mode",
                29: "Flash fired, auto mode, return light not detected",
                31: "Flash fired, auto mode, return light detected",
                32: "No flash function",
                65: "Flash fired, red-eye reduction mode",
                69: "Flash fired, red-eye reduction mode, return light not detected",
                71: "Flash fired, red-eye reduction mode, return light detected",
                73: "Flash fired, compulsory flash mode, red-eye reduction mode",
                77: "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",
                79: "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",
                89: "Flash fired, auto mode, red-eye reduction mode",
                93: "Flash fired, auto mode, return light not detected, red-eye reduction mode",
                95: "Flash fired, auto mode, return light detected, red-eye reduction mode"
            },
            SensingMethod: {
                1: "Undefined",
                2: "One-chip color area sensor",
                3: "Two-chip color area sensor",
                4: "Three-chip color area sensor",
                5: "Color sequential area sensor",
                7: "Trilinear sensor",
                8: "Color sequential linear sensor"
            },
            SceneCaptureType: {
                0: "Standard",
                1: "Landscape",
                2: "Portrait",
                3: "Night scene"
            },
            SceneType: {
                1: "Directly photographed"
            },
            CustomRendered: {
                0: "Normal process",
                1: "Custom process"
            },
            WhiteBalance: {
                0: "Auto white balance",
                1: "Manual white balance"
            },
            GainControl: {
                0: "None",
                1: "Low gain up",
                2: "High gain up",
                3: "Low gain down",
                4: "High gain down"
            },
            Contrast: {
                0: "Normal",
                1: "Soft",
                2: "Hard"
            },
            Saturation: {
                0: "Normal",
                1: "Low saturation",
                2: "High saturation"
            },
            Sharpness: {
                0: "Normal",
                1: "Soft",
                2: "Hard"
            },
            SubjectDistanceRange: {
                0: "Unknown",
                1: "Macro",
                2: "Close view",
                3: "Distant view"
            },
            FileSource: {
                3: "DSC"
            },
            ComponentsConfiguration: {
                0: "",
                1: "Y",
                2: "Cb",
                3: "Cr",
                4: "R",
                5: "G",
                6: "B"
            },
            Orientation: {
                1: "top-left",
                2: "top-right",
                3: "bottom-right",
                4: "bottom-left",
                5: "left-top",
                6: "right-top",
                7: "right-bottom",
                8: "left-bottom"
            }
        }, b.ExifMap.prototype.getText = function(d) {
            var c = this.get(d);
            switch (d) {
                case "LightSource":
                case "Flash":
                case "MeteringMode":
                case "ExposureProgram":
                case "SensingMethod":
                case "SceneCaptureType":
                case "SceneType":
                case "CustomRendered":
                case "WhiteBalance":
                case "GainControl":
                case "Contrast":
                case "Saturation":
                case "Sharpness":
                case "SubjectDistanceRange":
                case "FileSource":
                case "Orientation":
                    return this.stringValues[d][c];
                case "ExifVersion":
                case "FlashpixVersion":
                    return String.fromCharCode(c[0], c[1], c[2], c[3]);
                case "ComponentsConfiguration":
                    return this.stringValues[d][c[0]] + this.stringValues[d][c[1]] + this.stringValues[d][c[2]] + this.stringValues[d][c[3]];
                case "GPSVersionID":
                    return c[0] + "." + c[1] + "." + c[2] + "." + c[3]
            }
            return String(c)
        },
        function(f) {
            var e, h = f.tags,
                g = f.map;
            for (e in h) {
                h.hasOwnProperty(e) && (g[h[e]] = e)
            }
        }(b.ExifMap.prototype), b.ExifMap.prototype.getAll = function() {
            var e, d, f = {};
            for (e in this) {
                this.hasOwnProperty(e) && (d = this.tags[e], d && (f[d] = this.getText(d)))
            }
            return f
        }
});
